package com.zzs.common.core.constant;

/**
 * JWT 常量类，定义了与 JWT 相关的常量配置。
 * <p>
 * 该类封装了 JWT 的键、过期时间、认证头等常量，用于确保 JWT 相关操作的一致性。
 * </p>
 * @author zzs
 * @date 2025/03/17
 */
public class JwtConsts {
    /**
     * JWT 中存放用户 ID 的键。
     * 用于从 JWT 中提取用户标识。
     */
    public static final String USER_ID_KEY = "userId";

    /**
     * 用户 ID 在 JWT 中的有效期，单位为毫秒。
     * 当前设置为 24 小时，即 jwt 的有效时间为 24 小时。
     */
//    1分钟
//    public static final Long TOKEN_EXPIRE_TIME = 1000 * 60L;
//    24小时
//    public static final Long TOKEN_EXPIRE_TIME = 1000 * 60 * 60 * 24L;
//    30天
    public static final Long TOKEN_EXPIRE_TIME = 1000 * 60 * 60 * 24 * 30L;

    /**
     * token的有效期在小于这个时间后，会刷新redis相应缓存时间，并生成一个新的token放在响应头返回
     */
    public static final Long TOKEN_REFRESH_TIME = TOKEN_EXPIRE_TIME >>> 1;

    /**
     * JWT 授权类型前缀，通常是 "Bearer "。
     * 用于拼接完整的 Authorization 头部信息。
     */
    public static final String BEARER_PREFIX = "Bearer ";

    /**
     * HTTP 请求头部的 Authorization 字段名。
     * 用于从请求头中提取 JWT。
     */
    public static final String AUTHORIZATION = "Authorization";
}
